// samsting : this file is auto create.

#ifndef ALIYUN_Ecs_DescribeSecurityGroupAttributeResponse_H_
#define ALIYUN_Ecs_DescribeSecurityGroupAttributeResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ecs {

class DescribeSecurityGroupAttributeResponse : public AcsResponse {
public:
  DescribeSecurityGroupAttributeResponse();

  class Permission {
    friend class DescribeSecurityGroupAttributeResponse;
  public:
    const string& GetIpProtocol(void) const;
    const string& GetPortRange(void) const;
    const string& GetSourceGroupId(void) const;
    const string& GetSourceCidrIp(void) const;
    const string& GetPolicy(void) const;
    const string& GetNicType(void) const;
    const string& GetSourceGroupOwnerAccount(void) const;
    const string& GetDestGroupId(void) const;
    const string& GetDestCidrIp(void) const;
    const string& GetDestGroupOwnerAccount(void) const;
    const string& GetPriority(void) const;
    const string& GetDirection(void) const;
  private:
    string IpProtocol_;
    string PortRange_;
    string SourceGroupId_;
    string SourceCidrIp_;
    string Policy_;
    string NicType_;
    string SourceGroupOwnerAccount_;
    string DestGroupId_;
    string DestCidrIp_;
    string DestGroupOwnerAccount_;
    string Priority_;
    string Direction_;
  }; // Permission 

  const std::vector<Permission>& GetPermissions(void) const;
  const string& GetRegionId(void) const;
  const string& GetSecurityGroupId(void) const;
  const string& GetDescription(void) const;
  const string& GetSecurityGroupName(void) const;
  const string& GetVpcId(void) const;

private:
  std::vector<Permission> Permissions_;
  string RegionId_;
  string SecurityGroupId_;
  string Description_;
  string SecurityGroupName_;
  string VpcId_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ecs {

#endif // #ifndef ALIYUN_Ecs_DescribeSecurityGroupAttributeResponse_H_

// end of file 
